package com.zpark.oop.day05;

/**
 * @PackageName: com.zpark.oop.day05
 * @ClassName: ZhangSan
 * @Description:
 * @author: RZS
 * @date: 2024/10/12  8:39
 */
public class ZhangSan extends Person {
    /**
     * this关键字：
     *      this：是一个当前类对象，指向当前对象本身
     *      this的用法：
     *          1、this.属性名：访问当前对象的属性
     *          2、this.方法名：访问当前对象的方法
     *          3、this([参数])：调用当前类的其他构造方法，只能在构造方法当中使用，必须位于构
     *              造方法的第一行
     *  Super关键字：
     *          super：指的是当前类的父类对象
     *          super的用法：
     *              1、super.属性名：访问父类的属性
     *              2、super.方法名：访问父类的方法
     *              3、super([参数])：调用父类的其他构造方法，只能在构造方法当中使用，必须位
     *              于子类构造方法的第一行
     *  注意：super()和this()不能同时出现在同一个构造方法当中
     */

    String name;  // 成员变量   对象的属性

    public ZhangSan(){
        // 如果子类没有写super(),则编译器会默认补充super()
        //super(); // 调用父类的无参构造方法
        super("");
        System.out.println("ZhangSan的无参构造");
    }

    public ZhangSan(String name){
        // 调用当前类的构造方法和父类的构造方法
        this();
        System.out.println("ZhangSan的有参构造");
    }

    public void test(){
        // 要求给父类的name属性赋值
        super.name = "张三";

    }
}
